[id].vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <main>
  3. <div>
  4. <p v-show="pending">Pending...</p>
  5. <p>Edit :{{ data }}</p>
  6. <form @submit.prevent="" @change="onFileChange" class="my-3">
  7. <v-text-field v-model="data.name" type="text" />
  8. <v-select v-model="data.status" :items="['PENDING', 'READY', 'DELETED', 'ERROR']">
  9. </v-select>
  10. <v-btn @click="cancel" class="ma-5">Annuler</v-btn>
  11. <v-btn @click="save" class="ma-5">Enregistrer</v-btn>
  12. <v-btn @click="deleteAndGoBack" class="ma-5">Supprimer</v-btn>
  13. <v-btn @click="refresh" class="ma-5">Refresh</v-btn>
  14. </form>
  15. </div>
  16. </main>
  17. </template>
  18. <script setup lang="ts">
  19. import {useEntityManager} from "~/composables/data/useEntityManager";
  20. import {ref, Ref} from "@vue/reactivity";
  21. import ApiResource from "~/models/ApiResource";
  22. import {File} from "~/models/Core/File";
  23. import {navigateTo, useAsyncData} from "#app";
  24. const route = useRoute()
  25. const id: Ref<number> = ref(parseInt(route.params.id as string))
  26. const valid: Ref<boolean> = ref(true)
  27. const em = useEntityManager()
  28. const { data, pending, refresh } = useAsyncData(
  29. 'file_' + id.value,
  30. () => em.fetch(File, id.value)
  31. )
  32. //@ts-ignore
  33. const file = reactive(data.value) as ApiResource
  34. const onFileChange = () => {
  35. console.log(file)
  36. em.getRepository(File).save(file)
  37. }
  38. const save = async () => {
  39. await em.persist(File, file)
  40. }
  41. const cancel = async () => {
  42. if (em.isNewEntity(File, id.value)) {
  43. await em.delete(File, file)
  44. } else {
  45. em.reset(File, file)
  46. }
  47. }
  48. const deleteItem = async () => {
  49. await em.delete(File, file)
  50. }
  51. const goBack = () => {
  52. navigateTo('/poc')
  53. }
  54. const saveAndGoBack = async () => {
  55. await save()
  56. goBack()
  57. }
  58. const cancelAndGoBack = async () => {
  59. await cancel()
  60. goBack()
  61. }
  62. const deleteAndGoBack = async () => {
  63. await deleteItem()
  64. goBack()
  65. }
  66. </script>
  67. <style>
  68. </style>